import axios from 'axios'
import router from '@/router'
import store from '@/store'

const isDev = process.env.NODE_ENV === 'development'

const request = axios.create({
//   baseURL: isDev ? 'http://localhost:3000/api' : '',
  // baseURL: isDev ? '/api' : 'http://120.55.62.59:3000/api',
  baseURL: isDev ? '/api' : 'http://120.55.62.59/api', // nginx挂反向代理时的设置
  timeout: 6000
})

request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么 - loading效果的展示，发送用户的身份信息 token
  // config.headers.common.token = localStorage.getItem('token')
  if (store.state.user.loginState) {
    config.headers.common.token = store.state.user.token
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})
// 响应的拦截器 - loading效果的消失
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么 --- loading效果的消失，根据用户的身份信息确认继续完成业务逻辑
  // utils/request.js 的validateToken后台验证token 无效的token状态码为10119
  if (response.data.code === '10119') {
    router.push('/login')
  }
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

export default request
